The Wireless Application Protocol (WAP) is an application communication protocol used to access services and information for handheld, wireless devices such as mobile phones, personal digital assistants (PDAs), Blackberries, and the like. The WAP standard is based on Internet standards, such as HyperText Markup Language (HTML), Extensible Markup Language (XML), and Transmission Control Protocol/Internet Protocol (TCP/IP), and shares some common features. The WAP standard consists of a Wireless Markup Language (WML) specification, a WMLScript specification, and a Wireless Telephony Application Interface (WTAI) specification.
To fit into a small wireless terminal, WAP uses a micro-browser to display information written in WML. A micro-browser is like a web browser, which is a software application used to locate and display web pages. Unlike a web browser, a micro-browser is optimized for the small screens of handheld, wireless devices. For example, a micro-browser is optimized to make minimal demands on hardware, memory, and central processing unit (CPU) usage of the wireless device. The micro-browser can also interpret a reduced version of JavaScript called WMLScript.
WML is a mark-up language derived from HTML; however, it is based on XML, a much stricter standard. A major difference between HTML and WML is that the basic unit of navigation in HTML is a page, while in WML the basic unit of navigation is a card. In both HTML and WML, navigation may be achieved through the use of Uniform Resource Locators (URLs) contained within the card data or the like. A WML file can contain multiple cards and, together, these cards form a WML deck. As a whole, the WML deck forms a cohesive and logically connected group of WML cards where each WML card is associated with a single display screen on a WAP-enabled device, such as a mobile phone, PDA, or Blackberry. When a user goes to a WAP site, the micro-browser (also referred to as “browser”) downloads a WML file that contains a deck of cards from the server. Only the display screen associated with one card of the deck will be shown on the screen of the client device at a time. These cards can link to other cards in the deck, and navigating between cards can be achieved either programmatically or in response to user input by means of Uniform Resource Locators (URLs) contained within the cards. If the user goes to another card of the same deck, the micro-browser does not have to send a request to the server since the deck and all of its cards are already stored on the WAP-enabled device. WML is designed in this way because wireless devices have a high latency for connecting to the server. Downloading an entire WML deck with a single access to the server can lower the number of round trips to the server.
Cards can contain links, text, images, input fields, option boxes, and many other elements. When a user enters data or moves from card to card within the deck, parameter values may be updated, changed or otherwise modified. Once a user has finished navigating through the deck or entered the appropriate command, the deck is submitted to the server. Since variables are valid across cards and every card may send parameters and their values to the server, one or more copies of the same parameter may be submitted to the server. This results in an inefficient use of the small wireless bandwidth and causes poor system performance.